From: Jonas Dreßler Date: Mon, 3 Apr 2023 14:12:59 +0000 (+0200) Subject: misc/objectManager: Fix emission of object-removed signal X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~371^2^2~50 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8431e7ae51fb9007a815f8e72592df529ce44ba3;p=gnome-shell.git misc/objectManager: Fix emission of object-removed signal Emitting this signal is broken right now: We check for a length of 0 on this._objects[objectPath], but the `this._objects[objectPath][interfaceName] = null` we do before the check doesn't actually remove the key, it only sets the value to null, leaving the key around and thus the amount of entries in the object doesn't change. Fix that by using the delete statement instead, "delete" properly removes the key and thus affects the amount of entries in the object, making our length === 0 check effective. Part-of: --- diff --git a/js/misc/objectManager.js b/js/misc/objectManager.js index c40975988..a1dcde3a7 100644 --- a/js/misc/objectManager.js +++ b/js/misc/objectManager.js @@ -130,7 +130,7 @@ var ObjectManager = class extends Signals.EventEmitter { this.emit('interface-removed', interfaceName, proxy); - this._objects[objectPath][interfaceName] = null; + delete this._objects[objectPath][interfaceName]; if (Object.keys(this._objects[objectPath]).length === 0) { delete this._objects[objectPath];